iT邦幫忙

2023 iThome 鐵人賽

DAY 30
0

最後一天,要把我們的成品部署上去拉

我選擇的是 fly.io

部署非常方便,比很多部署平台都還容易部署,不過需要懂一點 Docker

不懂的話怎麼辦?沒關係,他可以自動生成 Dockerfile

那我們就開始吧

設定

跟著官網的指令做,要部署新的應用程式時,用以下指令

> fly launch

Creating app in .../ishop
Scanning source code
Detected a Rails app

接著你需要輸入應用程式名稱

? Choose an app name (leave blank to generate one): ishop

輸入玩按 enter 就會請你選擇伺服器位置

這裡我選了日本東京,選完後一樣按 enter

automatically selected personal organization: Ning
Some regions require a paid plan (bom, fra, maa).
See https://fly.io/plans to set up a plan.

? Choose a region for deployment:  [Use arrows to move, type to filter]


> Tokyo, Japan (nrt)

接著就會問你要不要以 Postgresql 為資料庫

我習慣用 PG ,所以會輸入 y

接著會問你要選擇多少容量(選擇適合你專案的容量,但也要看一下價錢)

Select configuration:  [Use arrows to move, type to filter]
  Development - Single node, 1x shared CPU, 256MB RAM, 1GB disk
> Production (High Availability) - 3 nodes, 2x shared CPUs, 4GB RAM, 40GB disk
  Production (High Availability) - 3 nodes, 4x shared CPUs, 8GB RAM, 80GB disk

系統會問在一小時後希望將 PG 縮放至零(停止)

如果目前不打算運行且希望節省資源,可以選擇 y

但如果希望立即運行此專案,則應選擇 N, 確保 PG 保持運行

Scale single node pg to zero after one hour? (y/N) N
Creating postgres cluster in organization personal
Creating app...
Setting secrets on app ishop-db...
Provisioning 1 of 1 machines with image flyio/postgres-flex:15.3@sha256:5e5fc53decb051f69b0850f0f5d137c92343fcd1131ec413015e5260620947ac
Waiting for machine to start...

再來會問你需不需要用 Redis ,我的專案目前沒有使用到 Redis ,所以就輸入 N

Would you like to set up an Upstash Redis database now? (y/N) N

接著就會幫我們生出 docker 容器化所需要的檔案

Writing lockfile to .../Side Project/ishop/Gemfile.lock
      create  Dockerfile
      create  .dockerignore
      create  bin/docker-entrypoint
      create  config/initializers/sentry.rb
      create  config/dockerfile.yml
Wrote config file fly.toml

...
Your Rails app is prepared for deployment.
...

接下來我們就可以部署了

部署

> fly deploy

接著就會開始 build docker image 並且 push 到 fly.io

跑完的時候會告訴你有沒有成功

沒有成功要看一下錯誤訊息是什麼,去修正

fly.io 相較其他部署平台,變得更容易部署了

基本上沒什麼問題應該都可以一兩次修正後就部署成功

看到下方這個訊息就代表成功了

✔ Machine xxxxxxx [app] update finished: success

設定環境變數

fly.io 設定環境變數的方式很簡單,用指令就可以設定好了

flyctl secrets set AMAZON_ACCESS_KEY=XXXXXX

基本上就部署完成囉!

趕快去把你的網站丟給朋友玩看看吧


上一篇
Day 29 - 開始收錢錢
系列文
用 Rails 打造你的電商網站30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言